const puppeteer = require('puppeteer');
// https://blog.csdn.net/mengxiangxingdong/article/details/99237204
// https://zhaoqize.github.io/puppeteer-api-zh_CN/#/
(async () => {

  //模拟京东联盟创建推广位

  const browser = await puppeteer.launch({
    args: [
      '--disable-web-security'
    ],
    headless: false,
    ignoreHTTPSErrors: true,
    defaultViewport: null,
    timeout: 10000,
    devtools: false,
    slowMo: 250,
    executablePath: 'C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe'
  });
  try {
    //todo 此处为可新增推广位的链接地址
    const siteUrl = 'https://union.jd.com/manager/socialMediaExtension?id=4101236160&name=%E5%88%B8%E5%B0%8F%E4%B9%9D';
    const page = await browser.newPage();
    await page.setViewport({width: 1920, height: 1080});
    await page.setJavaScriptEnabled(true);
    await page.goto(siteUrl);

    await page.waitForNavigation({timeout: 200000000})  //等待网页操作
    await page.goto(siteUrl);

    await page.waitForTimeout(2000)
    await page.waitForSelector(
        '.container .download-all-btn.el-button--primary');

    console.log("进入了网站推广位管理页面")

    await page.waitForTimeout(5000)

    //模拟点击 -> 创建推广位
    for (var i = 1; i <= 500; i++) {
      await page.click('.container .download-all-btn.el-button--primary')  //点击新建推广位
      await page.waitForTimeout(500)
      await page.type(
          '.el-dialog__body .el-form-item__content .el-input__inner',
          '券小九网站' + i, {delay: 200})  //输入推广位名称
      await page.waitForTimeout(500)
      await page.click('.dialog-footer .el-button--primary')  //点击确定
      await page.waitForTimeout(1000)
    }

    await page.close();

  } catch (e) {
    throw e
  } finally {
    await browser.close();
  }
})();

//【推广位管理页面，收集数据】
function collectPids() {

  // 一：切换一页显示50条
  // 二：执行获取数据js（浏览器调试模式）
  window.pidArr = []

  function getTableData() {
    let $trArr = $('table tr');
    $trArr.each(function (i, tr) {
      var pid = $(tr).find('td:eq(1)').text();
      var name = $(tr).find('td:eq(2)').text();

      //添加至数组
      pid && pidArr.push({pid, name})

      //判断最后一行，自动切换下一页
      if (i === $trArr.length - 1) {
        var $nextBtn = $('.btn-next');
        if ($nextBtn[0].hasAttribute('disabled')) {
          //最后一页，循环 结束
          //打印数据
          printArray();//打印数组
        } else {
          //存在下一页 -> 切换下一页
          $nextBtn.trigger('click')
          //得到表格数据
          setTimeout(function () {
            getTableData()
          }, 500)
        }

      }
    })
  }

  //打印数组
  function printArray() {
    //排序
    let reg = /[^0-9]/ig    //获取数字
    pidArr.sort(function (a, b) {
      return parseInt(a.name.replace(reg, "")) - parseInt(
          b.name.replace(reg, ""))
    });
    //打印数据
    let txt = '';
    for (let j = 0; j < pidArr.length; j++) {
      txt += "'" + pidArr[j].pid + "','" + pidArr[j].name + "'\n";
    }
    console.log(txt)
  }

  //初始化当前表格数据
  getTableData();

}
